#coding:utf-8
"""
存放共用的代码块
"""
import cStringIO
import traceback
from web.contrib.template import render_jinja
import web

def catch_exception(func):
    """装饰器
    捕获异常"""
    def t(*args,**kwargs):
        try:
            return func(*args,**kwargs)
        except:#打印所有未知异常
            err_fp = cStringIO.StringIO() #创建内存文件对象
            traceback.print_exc(file=err_fp)
            err_msg = err_fp.getvalue()
            err_msg='\r\n'.join(err_msg.split( '\n'))
            #self.response.out.write(err_msg)
            return  err_msg
    return t

def check_login(func):
    """
    装饰器
    检查是否登录,没有的话跳转到登录页面
    """
    def t(*args,**kwargs):
        if session['login']==1:
            return func(*args,**kwargs)
        else:
            return render.login_fail()
            #web.seeother('/login')
    return t

render=render_jinja(
        'templates',   # 设置模板路径.
        encoding = 'utf-8', # 编码.
    )


#会话中 login=1登录成功，其它为失败
session=None